// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue';
// 引入element UI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App';
// 引入路由
import router from './router';
// 引入状态管理
import store from './vuex/store';
// 引入icon
import './assets/icon/iconfont.css'
// 引入全局样式
import './assets/css/global.css'
// 引入echarts图标库
import echarts from "echarts";

import mavonEditor from 'mavon-editor';
import 'mavon-editor/dist/css/index.css';
import VueCookies from 'vue-cookies'



Vue.prototype.$echarts = echarts;
// 让ajax携带cookie
axios.defaults.withCredentials = true;
// 注册 axios 为全局变量
Vue.prototype.$axios = axios
// 使用 vue cookie
Vue.use(VueCookies)
Vue.config.productionTip = false
// 使用 ElementUI 组件
Vue.use(ElementUI)
// markdown 解析编辑工具
Vue.use(mavonEditor)
import axios from 'axios';



// 请求端口

let host = window.location.host; //主机

const ENV = process.env.NODE_ENV

console.log(host)

// import infouser from "./user/UserByinfo.vue";

axios.defaults.baseURL = 'http://localhost:88/api'

Vue.prototype.$http = axios;

Vue.config.productionTip = false;

// 定义一个全局的非法字符处理函数
Vue.prototype.validForbid = function (value) {
  value = value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\·~！@#￥%……&*（）——\-+={}|《》？：“”【】、；‘’，。、]/g, '').replace(/\s/g, "");
  return value;
}

router.beforeEach((to, from, next) => {

  setTimeout(() => {

    var _hmt = _hmt || [];

    (function () {

      //每次执行前，先移除上次插入的代码

      document.getElementById('baidu_tj') && document.getElementById('baidu_tj').remove();   //判断有没有 baidu_tj  元素，有就删除

      var hm = document.createElement("script");

      hm.src = "https://hm.baidu.com/hm.js?xxxx";

      hm.id = "baidu_tj"

      var s = document.getElementsByTagName("script")[0];

      s.parentNode.insertBefore(hm, s);

    })();

  }, 0);

  next();

})

// 使用element UI
Vue.use(ElementUI);
// 过滤器
import * as custom from './utils/util'
import VueRouter from 'vue-router';

Object.keys(custom).forEach(key => {
  Vue.filter(key, custom[key])
})

Vue.filter('dateFormat', function (originStr) {
  const dt = new Date(originStr)

  const y = dt.getFullYear()
  const m = (dt.getMonth() + 1 + '').padStart(2, '0')
  const d = (dt.getDate() + '').padStart(2, '0')

  const hh = (dt.getHours() + '').padStart(2, '0')
  const mm = (dt.getMinutes() + '').padStart(2, '0')
  const ss = (dt.getSeconds() + '').padStart(2, '0')

  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})

//路由拦截器
// router.beforeEach((to, from, next) => {
//   if (to.matched.length != 0) {
//     if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
//       if (Boolean(localStorage.getItem("userInfo"))) { // 通过vuex state获取当前的user是否存在
//         next();
//       } else {
//         next({
//           path: '/login',
//           query: { redirect: to.fullPath } // 将跳转的路由path作为参数，登录成功后跳转到该路由
//         })
//       }
//     } else {
//       if (Boolean(localStorage.getItem("userInfo"))) { // 判断是否登录
//         if (to.path != "/" && to.path != "/login") { //判断是否要跳到登录界面
//           next();
//         } else {
//           /**
//            * 防刷新，如果登录，修改路由跳转到登录页面，修改路由为登录后的首页 
//            */
//           next({
//             path: '/system/system_index'
//           })
//         }
//       } else {
//         next();
//       }
//     }
//   } else {
//     next({
//       path: '/login',
//       query: { redirect: to.fullPath } // 将跳转的路由path作为参数，登录成功后跳转到该路由
//     })
//   }
// })



//配置路由
// var router =new VueRouter({
//   linkActiveClass:"mui-active",
//   routes:[
//     {path:"/infouser/",path:"/infouser/:username",component:infouser}
//   ]
// })

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store, //使用store vuex状态管理
  components: { App },
  template: '<App/>',
  data: {
    // 空的实例放到根组件下，所有的子组件都能调用
    Bus: new Vue()
  }

})